package br.com.upis.sispat.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import br.com.upis.sispat.exception.SeamCoreException;

public class DataUtil {
	private DataUtil() {
	}
	public static boolean validaDataMaior(Date dataInicio, Date dataTermino)
			throws IllegalArgumentException {

		boolean retorno = true;

		if (dataInicio != null && dataTermino != null) {
			retorno = dataInicio.after(dataTermino);
		} else {
			throw new IllegalArgumentException(
					"As datas inicio e término não podem ser null.");
		}

		return retorno;
	}

	public static String formataDate(Date data, String pattern)
			throws SeamCoreException {

		String dtFormatada = "";

		try {
			SimpleDateFormat df = new SimpleDateFormat(pattern);

			df.format(data);
		} catch (Exception e) {
			throw new SeamCoreException(e);
		}

		return dtFormatada;
	}

	public static Date formataDateString(String dataFormatada, String pattern)
			throws SeamCoreException {

		Date data = new Date();

		try {
			SimpleDateFormat df = new SimpleDateFormat(pattern);

			data = df.parse(dataFormatada);

		} catch (ParseException e) {
			throw new SeamCoreException(e);
		}

		return data;
	}

	public static Integer getActualYear() throws SeamCoreException {
		return Calendar.getInstance().get(Calendar.YEAR);
	}

}
